本日小作品:
https://codepen.io/linchinhsuan/pen/JjXeRPL
練習重點摘要:
$(this).toggleClass("active");
當點擊任何一張國旗圖片的時候為其動態加上active這個class。然後css裡面有寫.flags img.active{background-color: #D1D0D7;}
,所以被點到的國旗背景就會變色。
$(this).siblings().removeClass("active");
因為是單選題,所以我們這裡把除了被點到的國旗(this)之外的img都移除active這個class。$(this)
是被綁定的此物件,.siblings()
則是除了前者之外同層的其他物件。
$(".ans p").toggleClass("answer");
當點到正確的國旗的時候,動態為p元素加上一個叫做answer的class。$(".ans p").removeClass("answer");
這裡是當點到錯誤的答案,也就是選錯的時候,把p元素的answer這個class拿掉。
透過以上兩者,當答對的時候p上面會有answer這個class,反之則無。
$(".ans p").addClass("show");
送出答案的時候為p元素動態加上show這個class。
$(".ans p.show").text("答錯");
$(".ans p.answer.show").text("正確");
這裡用了.text()
的語法,是將內容寫入選擇節點的語法。當選到正確答案的時候,$(".ans p.answer.show").text("正確");
就會被觸發,覆蓋掉前者。反之,則會前者$(".ans p.show").text("答錯");
則會奏效。最終就可以依照情況顯示答案正確或是錯誤了。
---
備註:
本小作品使用了Pure.css的按鈕
圖片版權來自
Icons made by Freepik from www.flaticon.com
---
本日結語:
今天是九天,用jQuery控制class來寫判斷意外地困難,會有想用if判斷的衝動XD